package com.zxl.study.confusion.v4;

/**
 * @auther zxl
 * @create 2023-08-13 15:32
 * 正向下单业务的 抽象的 职责对象
 */
public abstract class SaveOrderHandler {
    /**
     * 持有的下一个处理请求的职责对象,责任链中的下一个元素
     */
    protected  SaveOrderHandler successor = null;

    /**
     * 设置下一个处理请求的职责对象
     * @param successor 下一个处理请求的职责对象
     */
    public void setSuccessor(SaveOrderHandler successor){
        this.successor = successor;
    }

    /**
     * 通用的请求处理方法
     * @param saveOrderRequestModel 处理SaveOrder业务的 通用的请求数据模型
     */
    public void handleRequest(SaveOrderRequestModel saveOrderRequestModel){
        //处理自己的业务

        //继续向下传播请求
        if(this.successor != null){
            this.successor.handleRequest(saveOrderRequestModel);
        }
    }
}

